package com.project.class8_15.service;

import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;

public class Factory {
    private static Properties pro = new Properties();
    static{
        try {
            pro.load(new FileReader("src/main/resources/dao.txt"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 根据接口名称，得到实现类对象
     * @param interfaceName 接口名
     * @return 实现类对象
     */
    public static Object getDao(String interfaceName){
        //根据键，得到值，值是实现类全路径
        String value = pro.getProperty(interfaceName);

        try {
            //加载类，得到类模版
            Class c = Class.forName(value);
            //调用无参构造方法，产生对象
            return c.getConstructor().newInstance();
        } catch (Exception e) {
            e.printStackTrace();
        }

        return null;
    }
}
